-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

=============================================================================
FreeBSD-SA-06:20.bind                                       Security Advisory
                                                          The FreeBSD Project

Topic:          Denial of Service in named(8)

Category:       contrib
Module:         bind
Announced:      2006-09-06
Credits:        The Measurement Factory
Affects:        FreeBSD 5.3 and later.
Corrected:      2006-09-06 21:18:26 UTC (RELENG_6, 6.1-STABLE)
                2006-09-06 21:19:21 UTC (RELENG_6_1, 6.1-RELEASE-p6)
                2006-09-06 21:20:08 UTC (RELENG_6_0, 6.0-RELEASE-p11)
                2006-09-06 21:20:54 UTC (RELENG_5, 5.5-STABLE)
                2006-09-06 21:21:50 UTC (RELENG_5_5, 5.5-RELEASE-p4)
                2006-09-06 21:22:39 UTC (RELENG_5_4, 5.4-RELEASE-p18)
                2006-09-06 21:23:16 UTC (RELENG_5_3, 5.3-RELEASE-p33)
CVE Name:       CVE-2006-4095, CVE-2006-4096

For general information regarding FreeBSD Security Advisories,
including descriptions of the fields above, security branches, and the
following sections, please visit
<URL:http://security.freebsd.org/>.

I.   Background

BIND 9 is an implementation of the Domain Name System (DNS) protocols.
The named(8) daemon is an Internet domain name server.  DNS Security
Extensions (DNSSEC) are additional protocol options that add
authentication and integrity to the DNS protocols.

II.  Problem Description

For a recursive DNS server, a remote attacker sending enough recursive
queries for the replies to arrive after all the interested clients
have left the recursion queue will trigger an INSIST failure in the
named(8) daemon.  Also for a recursive DNS server, an assertion
failure can occur when processing a query whose reply will contain
more than one SIG(covered) RRset.

For an authoritative DNS server serving a RFC 2535 DNSSEC zone which
is queried for the SIG records where there are multiple SIG(covered)
RRsets (e.g. a zone apex), named(8) will trigger an assertion failure
when it tries to construct the response.

III. Impact

An attacker who can perform recursive lookups on a DNS server and is able
to send a sufficiently large number of recursive queries, or is able to
get the DNS server to return more than one SIG(covered) RRsets can stop
the functionality of the DNS service.

An attacker querying an authoritative DNS server serving a RFC 2535
DNSSEC zone may be able to crash the DNS server.

All of the above issues will result in a Denial of Service situation.

IV.  Workaround

A possible workaround is to only allow trusted clients to perform recursive
queries.

V.   Solution

Perform one of the following:

1) Upgrade your vulnerable system to 5-STABLE, or 6-STABLE, or to the
RELENG_6_1, RELENG_6_0, RELENG_5_5, RELENG_5_4, or RELENG_5_3 security
branch dated after the correction date.

2) To patch your present system:

The following patches have been verified to apply to FreeBSD 5.3, 5.4,
5.5, 6.0, and 6.1 systems.

a) Download the relevant patch from the location below, and verify the
detached PGP signature using your PGP utility.

# fetch http://security.FreeBSD.org/patches/SA-06:20/bind.patch
# fetch http://security.FreeBSD.org/patches/SA-06:20/bind.patch.asc

b) Execute the following commands as root:

# cd /usr/src
# patch < /path/to/patch
# cd /usr/src/lib/bind
# make obj && make depend && make && make install
# cd /usr/src/usr.sbin/named
# make obj && make depend && make && make install

c) Restart the named application:

# /etc/rc.d/named restart

VI.  Correction details

The following list contains the revision numbers of each file that was
corrected in FreeBSD.

Branch                                                           Revision
  Path
- -------------------------------------------------------------------------
RELENG_5
  src/contrib/bind9/bin/named/query.c                         1.1.1.1.2.3
  src/contrib/bind9/lib/dns/resolver.c                        1.1.1.1.2.5
RELENG_5_5
  src/UPDATING                                             1.342.2.35.2.4
  src/sys/conf/newvers.sh                                   1.62.2.21.2.6
  src/contrib/bind9/bin/named/query.c                     1.1.1.1.2.2.2.1
  src/contrib/bind9/lib/dns/resolver.c                    1.1.1.1.2.4.2.1
RELENG_5_4
  src/UPDATING                                            1.342.2.24.2.27
  src/sys/conf/newvers.sh                                  1.62.2.18.2.23
  src/contrib/bind9/bin/named/query.c                     1.1.1.1.2.1.4.1
  src/contrib/bind9/lib/dns/resolver.c                    1.1.1.1.2.2.2.1
RELENG_5_3
  src/UPDATING                                            1.342.2.13.2.36
  src/sys/conf/newvers.sh                                  1.62.2.15.2.38
  src/contrib/bind9/bin/named/query.c                     1.1.1.1.2.1.2.1
  src/contrib/bind9/lib/dns/resolver.c                    1.1.1.1.2.1.2.1
RELENG_6
  src/contrib/bind9/bin/named/query.c                         1.1.1.1.4.2
  src/contrib/bind9/lib/dns/resolver.c                        1.1.1.2.2.3
RELENG_6_1
  src/UPDATING                                             1.416.2.22.2.8
  src/sys/conf/newvers.sh                                   1.69.2.11.2.8
  src/contrib/bind9/bin/named/query.c                     1.1.1.1.4.1.2.1
  src/contrib/bind9/lib/dns/resolver.c                    1.1.1.2.2.2.2.1
RELENG_6_0
  src/UPDATING                                             1.416.2.3.2.16
  src/sys/conf/newvers.sh                                   1.69.2.8.2.12
  src/contrib/bind9/bin/named/query.c                         1.1.1.1.6.1
  src/contrib/bind9/lib/dns/resolver.c                    1.1.1.2.2.1.2.1
- -------------------------------------------------------------------------

VII. References

http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2006-4095
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2006-4096
http://www.kb.cert.org/vuls/id/697164
http://www.kb.cert.org/vuls/id/915404
http://www.niscc.gov.uk/niscc/docs/re-20060905-00590.pdf?lang=en

The latest revision of this advisory is available at
http://security.FreeBSD.org/advisories/FreeBSD-SA-06:20.bind.asc
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (FreeBSD)

iD8DBQFFDQK8FdaIBMps37IRAj2LAJ0Y0zC/Soyr6GOLnYalU7ztpTzSpwCdExZy
j+Wxxc1IGOtrIYhV0sKTIEU=
=Gk4P
-----END PGP SIGNATURE-----
